#ifndef _S_APP_H_
#define _S_APP_H_

#include <windows.h>
#include <vector>
#include "types/types.h"

using namespace std;

class CView;
class SRenderer;

class SApp
{
	DECLARE_SINGLETON(SApp);

public:
	enum EState
	{
		E_NONE = 0,
		E_INSTALL,
		E_CONFIG,
		E_SAVER,
		E_UNINSTALL
	};
	SApp();
	virtual ~SApp(){}

	void	processMessage	(UINT uiMsg, int iId, WPARAM wParam, LPARAM lParam);
	bool	install			();
	void	uninstall		();
	void	initMonitors	();
	void	init			(HINSTANCE hInstance);
	void	release			();
	void	run				();
	void	addView			(CView* pView);

	HINSTANCE		m_hInstance;
	HWND			m_hWnd;
	EState			m_eState;
	vector<CView*>	m_oViews;
	vector<RECT>	m_oMonitorRects;
	POINT			m_oInitCursorPos;
};

#endif